1. Field of the Invention
The invention is related to data access and management, or xe2x80x9cdata syncingxe2x80x9d , between local and remote servers via internetwork such as the xe2x80x9cinternetxe2x80x9d. Data remains in the databases of the servers unless access thereto is required by another server. The servers can access each other""s data without the need to receive all of the data from the other server. The data in the system is thus distributed over the servers rather than xe2x80x9cpushingxe2x80x9d the data around the servers so that all servers have the same data, or providing a central server the stores all data for all servers.
2. Description of the Related Art
Many techniques for permitting data intercommunication between servers and their databases via an internetwork are known. One is the xe2x80x9cpushxe2x80x9d technique that transmits data updates generated at any server to all other servers via the internetwork so that the servers have the same data in their databases. This technique involves pushing massive amounts of data around the internetwork. The amount of data exposed if a breach in security occurs is relatively large. In addition, the amount of time required to move such large amounts of data between servers via the internetwork absorbs considerable time and processing capability of the servers. It would be desirable to provide a method that permits data to reside at the servers where it is generated and used, and yet to provide remote access to the data to a privileged degree.
Another technique known as the xe2x80x9chubxe2x80x9d technique that stores all data for all servers at one site accessed via the internetwork. However, this technique also suffers from certain disadvantages. For example, in the event of data loss at this site, no servers will be have the data for recovery thereof. In addition, the amount of processing capability required at the hub site will be relatively large, and the site equipment therefore relatively expensive. It would therefore be desirable to provide a method that allows the data to reside at the servers where such data is generated and managed, yet be accessible to other servers via the internet in a secure fashion.
Another problem related to the invention is that the data at one site may not exactly match that at another site. For example, if one wishes to find data pertaining to xe2x80x9cnewspaper advertisersxe2x80x9d in the culture of the local site, and the culture of the remote site has no data for xe2x80x9cnewspaper advertisersxe2x80x9d but has data for xe2x80x9cprinted media advertisersxe2x80x9d, the user at the local site can request such data at the remote site if privileged at the remote site to do so. It would be desirable to provide a method that can be used to associate local and remote data to permit enhanced accessibility of data between the sites.
This invented methods have as their objects to overcome the above-stated problems with previous techniques, and do in fact overcome such problems and attain significant advantages over the prior art.
A first method of the invention includes mapping at least one local application module to respective message type data, and storing the message type data in association with the local application module in a local database accessible to a local server. The method also includes mapping gateway account data for internetwork access to at least one remote database, to respective message type data. The remote database is accessible to at least one remote server. The method further includes storing the message type data in association with respective gateway account data in the local database. The method also includes mapping remote attribute data to local attribute data, storing the remote attribute data in association with the local attribute data in a memory location of the local database accessible to the local server. The local server can thus be prepared to trigger local and/or remote application modules by generating message type data of the appropriate type at the client device, and transmitting the message type data from the client device to the local server that runs the appropriate local or remote application modules, based on such message type data, optionally with local attribute data supplied by the user. For example, the message type data can designate a local application module to run to insert or delete user-specified attribute data in the local database, or can be used to post an update in attribute data stored in the local server to the remote server. The message type data can also be used as a search request to cause the remote server to run its remote application module to generate result data based on user-specified search attribute data. The method can include transmitting the result data from the remote server to the local server, and from the local server to the local client device for generation of a display including the result data based thereon.
The first method can further include mapping at least one remote application module to respective message type data, and storing the message type data in association with the remote application module in the remote database. The method can also include mapping gateway account data for internetwork access to the local database, to respective message type data, and storing the message type data in association with respective gateway account data in the remote database. The method can further include mapping local attribute data to remote attribute data, and storing the local attribute data in association with the remote attribute data in the remote database. In addition, the method can include generating message type data at a local client device, transmitting the message type data from the local client device to the local server, and receiving the message type data at the local server. The method can further include determining whether the received message type data is associated with a local application module. The local application module is run on the local server if the received message type so designates. The method can further include determining whether the message type data received from the client device is associated with gateway account data. If so, the method can include transmitting over an internetwork the message type data from the local server to the remote server using the gateway account data. The first method can include receiving the message type data at the remote server, determining whether the message type data is mapped to a remote application module in the remote database. If so, the method can include reading the remote application module from the remote database, and running the remote application module on the remote server.
The mappings of the local and remote application modules to the same message type data and the mappings of the local attribute data to the remote attribute data, permit meaningful interaction between local and remote servers even though they may be operating in very different parts of the world. For example, if the message type data generated at a local client device designates local and/or remote application modules used to execute a search request, and if the attribute data generated at the local client device that is associated with message type data identifies a particular worker data, say, xe2x80x9cC++ programmerxe2x80x9d, the mapped associations of the local and remote application modules and the local and remote attribute data will permit searches to be conducted either locally, remotely, or both, as desired by a user, to find workers with the same or similar skills. In addition, there need be no exact match between the local worker data definition defined by the local attribute data and the remote worker data definition, so that workers with skills close to that specified by the local attribute data can be found at the remote location to staff a particular work project, for example. This is but one example of how the invention can be used to increase the capability of local and remote servers to interact, and those of ordinary skill will understand that there are numerous other useful applications of the invention. The mapping of the remote attribute data and local attribute data can be performed with a predetermined xe2x80x9cbest fitxe2x80x9d function. For example, the remote attribute data and the local attribute data can be assigned numeric values as to relative similarity based on a SOUNDEX function, and the xe2x80x9cbest fitxe2x80x9d function can be used to compare such numeric values to determine local attribute data within a predetermined value from the remote attribute data. The message type data can be transmitted between the local and remote servers in an eXtensible Markup Language (XML) document embedded in a hypertext transfer protocol (HTTP) message. The method can also include logging the message received at the remote server with time stamp data, receiving the result data transmitted from the remote server at the local server, logging the result data received with return time data, comparing the time stamp data with the return time data, and determining at the local server whether the result data is valid, based on the comparison. The use of time stamp data and return time data can be used to eliminate result data that is too aged to be of interest to a user. To ensure security of the data transmitted between the local and remote servers, the method can include encrypting messages containing message type data, attribute data, and/or result data transmitted between the local and remote servers, and decrypting received messages at the receiving server. Such encryption/decryption can be performed using public and private key data prestored in association with respective network addresses (e.g., universal resource locators (URLs)) on the network.
These together with other objects and advantages, which will become subsequently apparent, reside in the details of construction and operation as more fully described hereinafter, reference being made to the accompanying drawings, forming a part hereof, wherein like numerals refer to like parts throughout the several views.